前篇講了語法錯誤訊息的處理方式,但還有一種錯誤是語法看似沒問題,但實際執行偵錯的時候才發生錯誤,稱為「例外(Exception)」。例外發生的狀況有非常多種,族繁不及備載。
舉例來說,下面的程式碼如果實際執行會出現DivideByZeroException
例外,有學過數學就知道數字除以0會等於無限大or無定義,所以這樣子程式碼執行就會有錯誤。
static void Main(string[] args)
{
var x = 1;
var result = x / 0;
Console.WriteLine(result);
Console.ReadLine();
}
一般來說,遇到例外可以使用Try Catch
語法來處理,可以參考下面文章或上課時好好學習,這個如果課程沒教或自學沒學到都不行呀!
https://hoohoo.top/blog/exception-handling-in-c-teaching-notes-using-visual-studio/
https://jprogramstudy.com/608/
但使用時需要注意幾個重點:
最後附上上面Code加了Try Catch後的範例:
static void Main(string[] args)
{
try
{
var x = 1;
var result = x / 0;
Console.WriteLine(result);
}
catch (Exception e) //將例外狀況放在e變數
{
Console.WriteLine(e.ToString());//,可將e轉成字串,後續可write to db....
}
}
執行結果就不會出現例外了,而是把例外訊息寫出來,讓程式不會卡死。